Integration of videoconferencing with interactive electronic whiteboard appliances

ABSTRACT

An interactive whiteboard appliance includes the capability to integrate and manage, in a user-friendly manner, interactive electronic whiteboard sessions and videoconferencing sessions between the interactive whiteboard appliance and one or more client devices. An application manager executing on the interactive whiteboard appliance manages an interactive whiteboard application and a collaboration client executing on the interactive whiteboard appliance to maintain a videoconferencing session window on top of an interactive whiteboard session window during videoconferencing sessions. The application manager also provides graphical user interface controls displayed on the interactive whiteboard appliance that allow users to initiate and manage interactive electronic whiteboard sessions and videoconferencing sessions, including switching between interactive electronic whiteboard sessions and videoconferencing sessions. The approach may be implemented on interactive whiteboard appliances that are not natively configured to allow users to select and/or switch control between an interactive whiteboard session window and a videoconferencing session window.

RELATED APPLICATION DATA AND CLAIM OF PRIORITY

None

FIELD OF THE INVENTION

Embodiments relate generally to integrating videoconferencing withinteractive electronic whiteboard appliances.

BACKGROUND

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

Interactive electronic whiteboard appliances allow users to view andmake changes to electronic information and have the changes propagatedto other devices. There is limited capability, however, to use otherapplications on interactive whiteboard appliances concurrent with thesharing of an electronic whiteboard.

SUMMARY

An interactive whiteboard appliance includes a display, a communicationsinterface, one or more processors, one or more memories, an operatingsystem executing on the interactive whiteboard appliance and having anapplication programming interface that provides access to functionalitysupported by the operating system, an interactive whiteboard applicationconfigured to display an interactive whiteboard window on the display ofthe interactive whiteboard appliance, a collaboration client configuredto support one or more videoconferencing sessions with one or morecollaboration clients executing on one or more client devices that areexternal to the interactive whiteboard appliance including displaying avideoconferencing window on the display of the interactive whiteboardappliance and an application manager. The application manager isconfigured to cause a menu to be displayed on the display of theinteractive whiteboard appliance that includes one or more options forswitching between the interactive whiteboard application window and thevideoconferencing window and detect a user selection of a particularoption from the one or more options for switching between theinteractive whiteboard window and the videoconferencing window. Theapplication manager is further configured to manage display of theinteractive whiteboard window and the videoconferencing window inresponse to detecting the user selection of the particular option fromthe one or more options for switching between the interactive whiteboardapplication window and the videoconferencing window.

BRIEF DESCRIPTION OF THE DRAWINGS

In the figures of the accompanying drawings like reference numeralsrefer to similar elements.

FIG. 1 is a block diagram that depicts an arrangement for integratingvideoconferencing services with an interactive whiteboard appliance.

FIG. 2A is a flow diagram that depicts example activities performedduring a startup process of an interactive whiteboard appliance.

FIG. 2B is a flow diagram that depicts example activities performedduring startup of a videoconferencing session.

FIG. 2C is a flow diagram that depicts a process for sharing awhiteboard after a videoconferencing session has been established.

FIG. 3A depicts an example interactive whiteboard display after aninteractive whiteboard appliance has been powered up.

FIG. 3B depicts the display of a collaboration menu after selection of acollaboration menu icon.

FIG. 3C depicts an interactive whiteboard display after a user hasselected a “Start Videoconferencing Session” option from a collaborationmenu.

FIG. 3D depicts interactive whiteboard display after a videoconferencingsession has been established between an interactive whiteboard applianceand a participant on another device.

FIG. 3E depicts a collaboration menu that has been updated to make a“Show Videoconferencing Session” option active and to change a “ShareWhiteboard” option to a “Stop Whiteboard Sharing” option.

FIG. 4 is a block diagram that depicts an example computer system uponwhich embodiments may be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the embodiments. It will be apparent, however, to oneskilled in the art that the embodiments may be practiced without thesespecific details. In other instances, well-known structures and devicesare shown in block diagram form in order to avoid unnecessarilyobscuring the embodiments.

-   -   I. OVERVIEW    -   II. SYSTEM ARCHITECTURE        -   A. Interactive Whiteboard Appliance        -   B. Collaboration Server        -   C. Client Devices    -   III. ELECTRONIC WHITEBOARD AND VIDEOCONFERENCING SESSION        INTEGRATION        -   A. Startup        -   B. Establishing a Videoconferencing Session        -   C. Sharing a Whiteboard    -   IV. IMPLEMENTATION MECHANISMS        I. Overview

An interactive whiteboard appliance includes the capability to integrateand manage, in a user-friendly manner, interactive electronic whiteboardsessions and videoconferencing sessions between the interactivewhiteboard appliance and one or more client devices. An applicationmanager executing on the interactive whiteboard appliance manages aninteractive whiteboard application and a collaboration client executingon the interactive whiteboard appliance to maintain a videoconferencingsession window on top of an interactive whiteboard session window duringvideoconferencing sessions. The application manager also providesgraphical user interface controls displayed on the interactivewhiteboard appliance that allow users to initiate and manage interactiveelectronic whiteboard sessions and videoconferencing sessions, includingswitching between interactive electronic whiteboard sessions andvideoconferencing sessions. The approach may be implemented oninteractive whiteboard appliances that are not natively configured toallow users to select and/or switch control between an interactivewhiteboard session window and a videoconferencing session window.

II. System Architecture

FIG. 1 is a block diagram that depicts an arrangement 100 forintegrating videoconferencing services with an interactive whiteboardappliance. Arrangement 100 includes an interactive whiteboard appliance102, client devices 104, 106 and a collaboration server 108,communicatively coupled via a network 112. Arrangement 100 is notlimited the particular elements depicted in FIG. 1 and may include feweror additional elements depending upon a particular implementation.Embodiments are described herein in the context of a single interactivewhiteboard appliance 102 for purposes of explanation, but the approachis applicable to any number of interactive whiteboard appliances.Network 112 is depicted in FIG. 1 as a single network for purposes ofexplanation only and network 112 may include any number and type ofwired or wireless networks, such as local area networks (LANs), widearea networks (WANs), the Internet, etc. The various elements depictedin FIG. 1 may also communicate with each other via direct communicationslinks that are not depicted in FIG. 1 for purposes of explanation.

A. Interactive Whiteboard Appliance

Interactive whiteboard appliance 102 is an electronic whiteboard thatsupports interactive electronic whiteboard sessions andvideoconferencing sessions with other devices. The interactivewhiteboard appliance 102 includes the capability to manage interactiveelectronic whiteboard sessions and videoconferencing sessions in auser-friendly manner by maintaining a videoconferencing session windowon top of an interactive whiteboard session window duringvideoconferencing sessions. The interactive whiteboard appliance 102also provides graphical user interface controls that allow users toinitiate and manage interactive electronic whiteboard sessions andvideoconferencing sessions, including switching between interactiveelectronic whiteboard sessions and videoconferencing sessions. Theapproaches described herein are applicable to interactive whiteboardappliances that are not natively configured to allow users to selectand/or switch control between an interactive whiteboard session windowand a videoconferencing session window.

In the example depicted in FIG. 1, interactive whiteboard appliance 102includes a display 120, a communications interface 122, an interactivewhiteboard (IWB) application 124, a collaboration client 126, anapplication manager 128, a user interface (UI) component 130, anoperating system (OS) 132 having an OS application programming interface(API) 134, a collaboration software development kit (SDK) 136 with acollaboration SDK API 138 and storage 144. These elements are describedin more detail hereinafter. Interactive whiteboard appliance 102 mayinclude fewer or more components that those depicted in FIG. 1 anddescribed herein and the particular components used may vary dependingupon a particular implementation and interactive whiteboard appliance102 is not limited to a particular set of components or features. Forexample, interactive whiteboard appliance 102 may also include manualcontrols, such as buttons, slides, etc., not depicted in FIG. 1, forperforming various functions on mobile device, such as powering on/offor changing the state of interactive whiteboard appliance 102 and/ordisplay 120.

Display 120 may be implemented by any type of display that displaysimages and information to a user and may also be able to receive userinput and embodiments are not limited to any particular implementationof display 120. As one non-limiting example, display 120 may be atouchscreen display 120 that both displays information to users andallows user to select graphical user interface objects. Interactivewhiteboard appliance 102 may have any number of displays 120, of similaror varying types, located anywhere on interactive whiteboard appliance102.

Communications interface 122 may include computer hardware, software, orany combination of computer hardware and software to provide wiredand/or wireless communications between interactive whiteboard appliance102 and other devices and/or networks, such as collaboration server 108and client devices 104, 106. The particular components forcommunications interface 130 may vary depending upon a particularimplementation and embodiments are not limited to any particularimplementation of communications interface 130.

Interactive whiteboard (IWB) application 124 is an application thatexecutes on interactive whiteboard appliance 102 and, in conjunctionwith collaboration server 108, manages interactive whiteboard sessionsbetween interactive whiteboard appliance 102 and other devices.

Collaboration client 126 is an application that executes on interactivewhiteboard appliance 102 and, in conjunction with collaboration server108, supports videoconferencing sessions between interactive whiteboardappliance 102 and other devices. One non-limiting example implementationof collaboration manager 160 is a Microsoft Lync Client.

Application manager 128 is an application that executes on interactivewhiteboard appliance 102 and manages interactive electronic whiteboardsessions and videoconferencing sessions between interactive whiteboardappliance 102 and other devices using functionality provided by OS 132and collaboration library 136. Application manager 128 also, inconjunction with UI component 130, provides graphical user interfacecontrols on display 120 that allow users to initiate and manageinteractive electronic whiteboard sessions and videoconferencingsessions, including switching between interactive electronic whiteboardsessions and videoconferencing sessions. Although depicted in FIG. 1 asa separate element, application manager 128 may be integrated intointeractive whiteboard application 124, for example, as a plug-incomponent.

Operating system 132 executes on computing architecture 140 and may beany type of operating system that may vary depending upon a particularimplementation and embodiments are not limited to any particularimplementation of operating system 132. Operating system 132 may includemultiple operating systems of varying types, depending upon a particularimplementation. OS API 134 provides access to functionality provided byOS 132. For example, interactive whiteboard application 124 may use OSAPI 134 to initiate or instantiate functionality provided by OS 132.

Collaboration library 136 provides functionality for establishing andmanaging videoconferencing sessions between collaboration client 126 andcollaboration clients on other devices, such as collaboration client146, 150. Collaboration library API 138 provides access to thefunctionality provided by collaboration library 136. For example,interactive whiteboard application 124 may invoke functionality providedby collaboration library 136 using collaboration library API 138.Functionality provided by collaboration library 136 may be provided, forexample, by one or more applications and/or routines provided by theMicrosoft Lync SDK.

Computing architecture 140 may include various elements that may varydepending upon a particular implementation and interactive whiteboardappliance 102 is not limited to any particular computing architecture140. In the example depicted in FIG. 1, computing architecture includesa processor 142 and storage 144. Processor 142 may be any number andtypes of processors and storage 144 may be implemented by any number andtypes of memories, including volatile memory and non-volatile memory,which may vary depending upon a particular implementation. Computingarchitecture 140 may include additional hardware, firmware and softwareelements that may vary depending upon a particular implementation.

B. Collaboration Server

Collaboration server 108 may be implemented as any types of datarepository for storing data. In the example depicted in FIG. 1,collaboration server 108 includes a collaboration manager 160 andstorage 162. Collaboration manager 160 manages videoconferencingsessions conducted between interactive whiteboard appliance 102 andclient devices 104, 106. One non-limiting example implementation ofcollaboration manager 160 is a Microsoft Lync Server. Storage 162 may beimplemented by any number and types of memories, including volatilememory and non-volatile memory, which may vary depending upon aparticular implementation. Storage 162 includes collaboration data 164that stores information pertaining to videoconferencing sessionsconducted between interactive whiteboard appliance 102 and clientdevices 104, 106. Collaboration server 108 may include various othercomponents that may vary depending upon a particular implementation andcollaboration server 108 is not limited to a particular set ofcomponents or features.

C. Client Device

Client devices 104, 106 may be any type of client devices and examplesof client devices 104, 106 include, without limitation, a workstation, apersonal computer, a laptop computer, a tablet computing device, apersonal digital assistant or a smart phone. Client device 104, 106include collaboration clients 140, 150, respectively, that supportvideoconferencing sessions conducted between interactive whiteboardappliance 102 and client devices 104, 106. One non-limiting exampleimplementation of collaboration client 146, 150 is a Microsoft LyncClient.

III. Electronic Whiteboard and Videoconferencing Session Integration

The application manager 128 on interactive whiteboard appliance 102 isconfigured to cause to be generated and displayed graphical userinterface controls that allow users to initiate and manage interactiveelectronic whiteboard sessions and videoconferencing sessions, includingswitching between interactive electronic whiteboard sessions andvideoconferencing sessions. This includes maintaining avideoconferencing session window on top of an interactive whiteboardsession window during videoconferencing sessions.

A. Startup

FIG. 2A is a flow diagram 200 that depicts example activities performedduring a startup process of interactive whiteboard appliance 102. Instep 202, interactive whiteboard appliance 102 is powered up, forexample, in response to a user physically switching on interactivewhiteboard appliance 102, or in response to interactive whiteboardappliance 102 detecting an electronic signal. In step 204, applicationmanager 128 is started and in step 206, interactive whiteboardapplication 124 is started. Interactive whiteboard application 124 maydisplay content, allow a user to change how the content is displayed andallow the user to update the content, although at this point changes tothe content are not being propagated to another device. According to oneembodiment, application manager 128 ensures that interactive whiteboardsession window 302 is topmost on interactive whiteboard display 300.This may include, for example, determining an operating system-levelidentification of the interactive whiteboard session window 302 and theninvoking one or more functions in OS 132 to cause the interactivewhiteboard session window 302 to remain on top. For example, in thecontext of a Microsoft windows OS, a FindWindow( ) function using aclass name of the interactive whiteboard session window 302 may beinvoked to determine and OS-level identifier for the interactivewhiteboard session window 302, followed by a call to set theWS_EX_TOPMOST bit in the GWL_EXSTYLE field for the interactivewhiteboard session window 302.

FIG. 3A depicts an example interactive whiteboard display 300 afterinteractive whiteboard appliance 102 has been powered up. Interactivewhiteboard display 300 may be, for example, display 120 of FIG. 1 andincludes an interactive whiteboard session window 302 and an interactivewhiteboard session content area 304 that displays content items 306. Aset of interactive whiteboard controls 308 allows a user to performvarious functions with respect to interactive whiteboard session window302, such as rotate, zoom and start annotation. A collaboration menuicon 310 is displayed and as depicted in FIG. 3B, selection of thecollaboration menu icon 310 causes a collaboration menu 312 to bedisplayed in step 208. Collaboration menu 312 provides user access tovarious controls for initiating and switching between an interactivewhiteboard session window and a videoconferencing session window. Atthis point in time there is no current active videoconferencing session,so the “Show Videoconferencing Session” and “Share Whiteboard” menuoptions are disabled. The “Keyboard” menu option provides access tovirtual keyboard displayed on display 120. In addition, a set ofinteractive whiteboard sharing controls 314 is disabled, since at thispoint in time there is no sharing of interactive whiteboard sessionwindow 302 with another device. In other embodiments, interactivewhiteboard sharing controls 314 may not be displayed at all untilinteractive whiteboard session window 302 is shared with another device.

In step 210, application manager 128 starts monitoring for terminationof the application manager 128 or for creation of a videoconferencingsession via a selection from collaboration menu 312. For example,application manager 128 may instantiate a process that monitors fordeletion of the interactive whiteboard application 124.

B. Establishing a Videoconferencing Session

FIG. 2B is a flow diagram 220 that depicts example activities performedduring startup of a videoconferencing session. In step 222, in responseto user selection of the “Start Videoconferencing Session” item from thecollaboration menu 312, application manager 128 invokes thecollaboration client 126. This may include, for example, invoking one ormore OS-level functions to invoke the collaboration client 126 and instep 224, wait for a collaboration client window to be created. Onceconfirmation has been received that a collaboration client window hasbeen created, then in step 226, the collaboration client window is setto the top and the interactive whiteboard session window is moved below.This may be accomplished by application manager 128 invoking one or moreOS-level functions in OS 132. For example, in the context of a Microsoftwindows OS, a FindWindow( ) function using a class name of thecollaboration client window may be invoked to determine and OS-levelidentifier for the collaboration client window. The WS_EX_TOPMOST bit inthe GWL_EXSTYLE field for the collaboration client window may then beset to move the collaboration client window to the top and theWS_EX_TOPMOST bit in the GWL_EXSTYLE field for the interactivewhiteboard session window 302 removed or unset to move the interactivewhiteboard session window 302 below. Notification may also be made tocollaboration manager 160 that the interactive whiteboard appliance 102is now active and available to participate in videoconferencingsessions. Collaboration manager 160 may update collaboration data 164 toindicate this condition. In step 228, the application manager 128 startsmonitoring for termination of the collaboration client 126 and start ofa videoconferencing session. If termination of the collaboration client126 is detected, then the interactive whiteboard session window 302 maybe moved to the top as previously described. If start of avideoconferencing session is detected, then the videoconferencingsession window is moved to the top. In step 230, the collaboration menuis updated.

FIG. 3C depicts interactive whiteboard display 300 after a user hasselected the “Start Videoconferencing Session” option from collaborationmenu 312. In response to this selection, application manager 128 causesa videoconferencing window 320 to be displayed in interactive whiteboardsession content area 304. Videoconferencing window 320 includes acontact list 322 of candidate participants with whom a videoconferencingsession may be initiated. In this example, the interactive whiteboardappliance 102 is considered to be “Participant #1.” Collaboration menu312 is depicted in FIG. 3C for purposes of explanation, but may behidden and then re-displayed via collaboration menu icon 310, aspreviously described herein.

FIG. 3D depicts interactive whiteboard display 300 after avideoconferencing session has been established between the interactivewhiteboard appliance 102 (“Participant #1”) and Participant #2, forexample, a user of client device 104. At this point in time, users ofthe interactive whiteboard appliance 102 and Participant #2 may engagein a videoconferencing session via videoconferencing window 320 and acorresponding videoconferencing window provided via collaboration client146 on client device 104. Collaboration menu 312 has been updated tochange the “Start Videoconferencing Session” option to “StopVideoconferencing Session” and the “Share Whiteboard” option is nowavailable for selection.

C. Sharing a Whiteboard

FIG. 2C is a flow diagram 240 that depicts a process for sharing awhiteboard after a videoconferencing session has been established. Instep 242, application manager 128 monitors for selection of the “ShareWhiteboard” option from collaboration menu 312. In step 244, theapplication manager 128 detects selection of the “Share Whiteboard”option from collaboration menu 312.

In step 246, application manager 128 invokes whiteboard sharing viacollaboration library 136 which allows the interactive whiteboardsession window 302 to be shared with Participant #2 via client device104. In step 248, application manager 128 causes the whiteboard sharingcontrols 314 to be displayed or enabled in interactive whiteboardsession window 302. The whiteboard sharing controls 314 allow the usersto select which user is currently presenting, to give control to anotheruser, and/or to stop presenting. This allows users to dynamically sharecontent as it is updated in the interactive whiteboard session contentarea 304. In step 250, the collaboration menu 312 is updated to reflectthat whiteboard sharing is currently active. For example, FIG. 3Edepicts that the collaboration menu 312 has been updated to make the“Show Videoconferencing Session” option active and to change the “ShareWhiteboard” option to a “Stop Whiteboard Sharing” option. The controlsprovided in collaboration menu 312 allow a user to switch between thevideoconferencing window 320 and the interactive whiteboard sessionwindow 302. In the situation where a user has selected the “ShowVideoconferencing Session” option and the videoconferencing window 320has been brought to the top, as previously described herein, the menuoption “Show Videoconferencing Session” or “Stop Whiteboard Sharing” maybe changed to “Show Whiteboard” to allow a user to easily switch betweenthe videoconferencing window 320 and the interactive whiteboard sessionwindow 302.

IV. Implementation Mechanisms

Although the flow diagrams of the present application depict aparticular set of steps in a particular order, other implementations mayuse fewer or more steps, in the same or different order, than thosedepicted in the figures.

According to one embodiment, the techniques described herein areimplemented by one or more special-purpose computing devices. Thespecial-purpose computing devices may be hard-wired to perform thetechniques, or may include digital electronic devices such as one ormore application-specific integrated circuits (ASICs) or fieldprogrammable gate arrays (FPGAs) that are persistently programmed toperform the techniques, or may include one or more general purposehardware processors programmed to perform the techniques pursuant toprogram instructions in firmware, memory, other storage, or acombination. Such special-purpose computing devices may also combinecustom hard-wired logic, ASICs, or FPGAs with custom programming toaccomplish the techniques. The special-purpose computing devices may bedesktop computer systems, portable computer systems, handheld devices,networking devices or any other device that incorporates hard-wiredand/or program logic to implement the techniques.

FIG. 4 is a block diagram that depicts an example computer system 400upon which embodiments may be implemented. Computer system 400 includesa bus 402 or other communication mechanism for communicatinginformation, and a processor 404 coupled with bus 402 for processinginformation. Computer system 400 also includes a main memory 406, suchas a random access memory (RAM) or other dynamic storage device, coupledto bus 402 for storing information and instructions to be executed byprocessor 404. Main memory 406 also may be used for storing temporaryvariables or other intermediate information during execution ofinstructions to be executed by processor 404. Computer system 400further includes a read only memory (ROM) 408 or other static storagedevice coupled to bus 402 for storing static information andinstructions for processor 404. A storage device 410, such as a magneticdisk or optical disk, is provided and coupled to bus 402 for storinginformation and instructions.

Computer system 400 may be coupled via bus 402 to a display 412, such asa cathode ray tube (CRT), for displaying information to a computer user.Although bus 402 is illustrated as a single bus, bus 402 may compriseone or more buses. For example, bus 402 may include without limitation acontrol bus by which processor 404 controls other devices withincomputer system 400, an address bus by which processor 404 specifiesmemory locations of instructions for execution, or any other type of busfor transferring data or signals between components of computer system400.

An input device 414, including alphanumeric and other keys, is coupledto bus 402 for communicating information and command selections toprocessor 404. Another type of user input device is cursor control 416,such as a mouse, a trackball, or cursor direction keys for communicatingdirection information and command selections to processor 404 and forcontrolling cursor movement on display 412. This input device typicallyhas two degrees of freedom in two axes, a first axis (e.g., x) and asecond axis (e.g., y), that allows the device to specify positions in aplane.

Computer system 400 may implement the techniques described herein usingcustomized hard-wired logic, one or more ASICs or FPGAs, firmware and/orprogram logic or computer software which, in combination with thecomputer system, causes or programs computer system 400 to be aspecial-purpose machine. According to one embodiment, those techniquesare performed by computer system 400 in response to processor 404processing instructions stored in main memory 406. Such instructions maybe read into main memory 406 from another computer-readable medium, suchas storage device 410. Processing of the instructions contained in mainmemory 406 by processor 404 causes performance of the functionalitydescribed herein. In alternative embodiments, hard-wired circuitry maybe used in place of or in combination with software instructions toimplement the embodiments. Thus, embodiments are not limited to anyspecific combination of hardware circuitry and software.

The term “computer-readable medium” as used herein refers to any mediumthat participates in providing data that causes a computer to operate ina specific manner. In an embodiment implemented using computer system400, various computer-readable media are involved, for example, inproviding instructions to processor 404 for execution. Such a medium maytake many forms, including but not limited to, non-volatile media andvolatile media. Non-volatile media includes, for example, optical ormagnetic disks, such as storage device 410. Volatile media includesdynamic memory, such as main memory 406. Common forms ofcomputer-readable media include, without limitation, a floppy disk, aflexible disk, hard disk, magnetic tape, or any other magnetic medium, aCD-ROM, any other optical medium, a RAM, a PROM, and EPROM, aFLASH-EPROM, any other memory chip, memory cartridge or memory stick, orany other medium from which a computer can read.

Various forms of computer-readable media may be involved in storinginstructions for processing by processor 404. For example, theinstructions may initially be stored on a storage medium of a remotecomputer and transmitted to computer system 400 via one or morecommunications links. Bus 402 carries the data to main memory 406, fromwhich processor 404 retrieves and processes the instructions. Theinstructions received by main memory 406 may optionally be stored onstorage device 410 either before or after processing by processor 404.

Computer system 400 also includes a communication interface 418 coupledto bus 402. Communication interface 418 provides a communicationscoupling to a network link 420 that is connected to a local network 422.For example, communication interface 418 may be a modem to provide adata communication connection to a telephone line. As another example,communication interface 418 may be a local area network (LAN) card toprovide a data communication connection to a compatible LAN. Wirelesslinks may also be implemented. In any such implementation, communicationinterface 418 sends and receives electrical, electromagnetic or opticalsignals that carry digital data streams representing various types ofinformation.

Network link 420 typically provides data communication through one ormore networks to other data devices. For example, network link 420 mayprovide a connection through local network 422 to a host computer 424 orto data equipment operated by an Internet Service Provider (ISP) 426.ISP 426 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the“Internet” 428. Local network 422 and Internet 428 both use electrical,electromagnetic or optical signals that carry digital data streams.

Computer system 400 can send messages and receive data, includingprogram code, through the network(s), network link 420 and communicationinterface 418. In the Internet example, a server 430 might transmit arequested code for an application program through Internet 428, ISP 426,local network 422 and communication interface 418. The received code maybe processed by processor 404 as it is received, and/or stored instorage device 410, or other non-volatile storage for later execution.

In the foregoing specification, embodiments have been described withreference to numerous specific details that may vary from implementationto implementation. Thus, the sole and exclusive indicator of what is,and is intended by the applicants to be, the invention is the set ofclaims that issue from this application, in the specific form in whichsuch claims issue, including any subsequent correction. Hence, nolimitation, element, property, feature, advantage or attribute that isnot expressly recited in a claim should limit the scope of such claim inany way. The specification and drawings are, accordingly, to be regardedin an illustrative rather than a restrictive sense.

What is claimed is:
 1. An interactive whiteboard appliance comprising: adisplay; a communications interface; one or more processors; one or morememories; an operating system executing on the interactive whiteboardappliance and having an application programming interface that providesaccess to functionality supported by the operating system; aninteractive whiteboard application configured to display an interactivewhiteboard window on the display of the interactive whiteboardappliance, wherein the interactive whiteboard window includes aninteractive whiteboard content area for displaying content that isshared with one or more client devices that are external to theinteractive whiteboard appliance; a collaboration client configured tosupport one or more videoconferencing sessions with one or morecollaboration clients executing on the one or more client devices thatare external to the interactive whiteboard appliance includingdisplaying a videoconferencing window on the display of the interactivewhiteboard appliance, wherein the videoconferencing window supports avideoconferencing session and is overlaid on top of the interactivewhiteboard content area of the interactive whiteboard window, such thatboth the content and the videoconferencing window are displayedsimultaneously; an application manager configured to: cause acollaboration menu to be displayed, on the display of the interactivewhiteboard appliance, wherein the collaboration menu includes one ormore controls for switching between the interactive whiteboardapplication window and the videoconferencing window, controlling sharingof the content with the one or more client devices, and controlling thevideoconferencing session in the videoconferencing window, detect a userselection of a particular control from the one or more controls forswitching between the interactive whiteboard window and thevideoconferencing window, controlling sharing of the content with theone or more client devices, and controlling the videoconferencingsession in the videoconferencing window, manage display of theinteractive whiteboard window and the videoconferencing window inresponse to detecting the user selection of the particular control fromthe one or more control for switching between the interactive whiteboardapplication window and the videoconferencing window, controlling sharingof the content with the one or more client devices, and controlling thevideoconferencing session in the videoconferencing window.
 2. Theinteractive whiteboard appliance of claim 1, wherein the applicationmanager is further configured to maintain the videoconferencing windowon top of the interactive whiteboard window during a videoconferencingsession.
 3. The interactive whiteboard appliance of claim 2, wherein theapplication manager is further configured to maintain thevideoconferencing window on top of the interactive whiteboard windowduring a videoconferencing session by specifying one or more values usedby the operating system executing on the interactive whiteboardappliance.
 4. The interactive whiteboard appliance of claim 2, whereinthe application manager is further configured to cause the interactivewhiteboard window to be moved on top of the videoconferencing window inresponse to termination of the videoconferencing session.
 5. Theinteractive whiteboard appliance of claim 1, wherein the applicationmanager is further configured to cause the interactive whiteboard windowto be shared with the one or more client devices that are external tothe interactive whiteboard appliance by invoking functionality providedby a collaboration library on the interactive whiteboard appliance. 6.The interactive whiteboard appliance of claim 1, wherein thecollaboration client is a Microsoft Lync client, the operating system isa Microsoft operating system and the application manager is configuredto manage display of the interactive whiteboard window and thevideoconferencing window in response to detecting the user selection ofthe particular control from the one or more controls for switchingbetween the interactive whiteboard application window and thevideoconferencing window by setting, in the Microsoft operating system,a topmost bit for the interactive whiteboard window and thevideoconferencing window.
 7. The interactive whiteboard appliance ofclaim 1, wherein the application manager is further configured to causethe collaboration menu to be updated in response to managing the displayof the interactive whiteboard window and the videoconferencing window inresponse to detecting the user selection of the particular control fromthe one or more controls for switching between the interactivewhiteboard application window and the videoconferencing window.
 8. Oneor more non-transitory computer-readable media storing instructionswhich, when processed by one or more processors, cause: an applicationmanager executing on an interactive whiteboard appliance to: cause acollaboration menu to be displayed on the display of the interactivewhiteboard appliance, wherein the collaboration menu includes one ormore controls for switching between an interactive whiteboardapplication window displayed by an interactive whiteboard applicationand a videoconferencing window displayed by a collaboration clientexecuting on the interactive whiteboard appliance, controlling sharingof content between the interactive whiteboard appliance and the one ormore client devices that are external to the interactive whiteboardappliance, and controlling a videoconferencing session in thevideoconferencing window, wherein the interactive whiteboard windowincludes an interactive whiteboard content area for displaying contentthat is shared with one or more client devices that are external to theinteractive whiteboard appliance, and wherein the videoconferencingwindow supports a videoconferencing session and is overlaid on top ofthe interactive whiteboard content area of the interactive whiteboardwindow, such that both the content and the videoconferencing window aredisplayed simultaneously, detect a user selection of a particularcontrol from the one or more controls for switching between theinteractive whiteboard window and the videoconferencing window,controlling sharing of the content with the one or more client devices,and controlling the videoconferencing session in the videoconferencingwindow, manage display of the interactive whiteboard window and thevideoconferencing window in response to detecting the user selection ofthe particular control from the one or more controls for switchingbetween the interactive whiteboard application window and thevideoconferencing window, controlling sharing of the content with theone or more client devices, and controlling the videoconferencingsession in the videoconferencing window.
 9. The one or morenon-transitory computer-readable media of claim 8, further comprisingadditional instructions which, when processed by the one or moreprocessors, cause the application manager to maintain thevideoconferencing window on top of the interactive whiteboard windowduring a videoconferencing session.
 10. The one or more non-transitorycomputer-readable media of claim 9, further comprising additionalinstructions which, when processed by the one or more processors, causethe application manager to maintain the videoconferencing window on topof the interactive whiteboard window during a videoconferencing sessionby specifying one or more values used by the operating system executingon the interactive whiteboard appliance.
 11. The one or morenon-transitory computer-readable media of claim 9, further comprisingadditional instructions which, when processed by the one or moreprocessors, cause the application manager to cause the interactivewhiteboard window to be moved on top of the videoconferencing window inresponse to termination of the video conferencing session.
 12. The oneor more non-transitory computer-readable media of claim 8, furthercomprising additional instructions which, when processed by the one ormore processors, cause the application manager to cause the interactivewhiteboard window to be shared with the one or more client devices thatare external to the interactive whiteboard appliance by invokingfunctionality provided by a collaboration library on the interactivewhiteboard appliance.
 13. The one or more non-transitorycomputer-readable media of claim 8, wherein the collaboration client isa Microsoft Lync client, the operating system is a Microsoft operatingsystem and the application manager is configured to manage display ofthe interactive whiteboard window and the videoconferencing window inresponse to detecting the user selection of the particular control fromthe one or more controls for switching between the interactivewhiteboard application window and the videoconferencing window bysetting, in the Microsoft operating system, a topmost bit for theinteractive whiteboard window and the videoconferencing window.
 14. Theone or more non-transitory computer-readable media of claim 8, furthercomprising additional instructions which, when processed by the one ormore processors, cause the application manager to cause thecollaboration menu to be updated in response to managing the display ofthe interactive whiteboard window and the videoconferencing window inresponse to detecting the user selection of the particular control fromthe one or more controls for switching between the interactivewhiteboard application window and the videoconferencing window.
 15. Acomputer-implemented method comprising: an application manager executingon an interactive whiteboard appliance: causing a collaboration menu tobe displayed on the display of the interactive whiteboard appliance,wherein the collaboration menu includes one or more controls forswitching between an interactive whiteboard application window displayedby an interactive whiteboard application and a videoconferencing windowdisplayed by a collaboration client executing on the interactivewhiteboard appliance, controlling sharing of content between theinteractive whiteboard appliance and the one or more client devices thatare external to the interactive whiteboard appliance, and controlling avideoconferencing session in the videoconferencing window, wherein theinteractive whiteboard window includes an interactive whiteboard contentarea for displaying content that is shared with one or more clientdevices that are external to the interactive whiteboard appliance, andwherein the videoconferencing window supports a videoconferencingsession and is overlaid on top of the interactive whiteboard contentarea of the interactive whiteboard window, such that both the contentand the videoconferencing window are displayed simultaneously, detectinga user selection of a particular control from the one or more controlsfor switching between the interactive whiteboard window and thevideoconferencing window, controlling sharing of the content with theone or more client devices, and controlling the videoconferencingsession in the videoconferencing window, managing display of theinteractive whiteboard window and the videoconferencing window inresponse to detecting the user selection of the particular control fromthe one or more controls for switching between the interactivewhiteboard application window and the videoconferencing window,controlling sharing of the content with the one or more client devices,and controlling the videoconferencing session in the videoconferencingwindow.
 16. The computer-implemented method of claim 15, furthercomprising the application manager maintaining the videoconferencingwindow on top of the interactive whiteboard window during avideoconferencing session.
 17. The computer-implemented method of claim16, further comprising the application manager maintaining thevideoconferencing window on top of the interactive whiteboard windowduring a videoconferencing session by specifying one or more values usedby the operating system executing on the interactive whiteboardappliance.
 18. The computer-implemented method of claim 16, furthercomprising the application manager causing the interactive whiteboardwindow to be moved on top of the videoconferencing window in response totermination of the videoconferencing session.
 19. Thecomputer-implemented method of claim 15, further comprising theapplication manager causing the interactive whiteboard window to beshared with the one or more client devices that are external to theinteractive whiteboard appliance by invoking functionality provided by acollaboration library on the interactive whiteboard appliance.
 20. Thecomputer-implemented method of claim 15, wherein the collaborationclient is a Microsoft Lync client, the operating system is a Microsoftoperating system and the application manager is configured to managedisplay of the interactive whiteboard window and the videoconferencingwindow in response to detecting the user selection of the particularcontrol from the one or more controls for switching between theinteractive whiteboard application window and the videoconferencingwindow by setting, in the Microsoft operating system, a topmost bit forthe interactive whiteboard window and the videoconferencing window.